package com.jielin.handling.mapper.material;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.jielin.handling.entity.material.MaterialType;

public interface MaterialTypeMapper {

    List<MaterialType> findMaterialByCaseCode(@Param("casecode") String casecode,
                                              @Param("casesuspectid") String casesuspectid, @Param("policeId") String policeId,
                                              @Param("isRetract") int isRetract);// 根据案件id或与嫌疑人id查询对应的所有卷宗信息

    List<MaterialType> findMaterialByCaseCodeEx(@Param("caseCode") String casecode,
                                                @Param("caseSuspectId") String casesuspectid, @Param("policeId") String policeId,
                                                @Param("isRetract") int isRetract, @Param("materialTypeName") String materialTypeName);// 模糊卷宗信息

    MaterialType findById(String materialtypeid);// 根据id查询

    int addMaterialType(MaterialType mt);// 添加初始化一级目录

    int addMaterialTypes(@Param("materialTypes") List<MaterialType> materialTypes);// 添加初始化一级目录

    int updateMTAddCount(String id);// 更新count加1

    int updateMTDelCount(String id);// 更新count减1

    List<MaterialType> findByIds(String[] materialTypeIds);// 根据id(,分割)查询

    MaterialType findByDocumentId(String documentId);// 根据二级文件id查询卷宗一级信息

    int updateIsRetract(@Param("materialTypeIds") List<String> materialTypeIds, @Param("isRetract") int isRetract);// 修改卷宗状态为撤回

    List<String> findDeleteFileList(@Param("caseCode") String caseCode, @Param("caseSuspectId") String caseSuspectId,
                                    @Param("policeId") String policeId, @Param("isRetract") int isRetract, @Param("isDelete") int isDelete);// 查询卷宗的文件路径

    /**
     * 根据卷宗名称查询所有卷宗信息
     *
     * @param name      卷宗名称
     * @param beginTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    List<MaterialType> findMaterialByName(String name, String beginTime, String endTime);
}
